#ifndef MODEL_H
#define MODEL_H

#include <Arduino.h>

class EIModel {
private:
    bool initialized;   // 模型是否初始化成功

public:
    /**
     * @brief 构造函数
     */
    EIModel();

    /**
     * @brief 初始化模型
     * @return true 如果初始化成功，否则返回false
     */
    bool begin();

    /**
     * @brief 运行模型分类器
     * @param data 输入数据数组
     * @param size 数据数组大小
     * @param result_label 输出分类标签索引
     * @param result_score 输出分类置信度
     * @param debug 是否启用调试模式（默认false）
     * @return 0 如果推理成功，其他值表示错误
     */
    int runClassifier(
        float* data, 
        size_t size, 
        int* result_label,
        float* result_score,
        bool debug = false
    );

    /**
     * @brief 获取模型输入特征数量
     * @return 特征数量
     */
    size_t getFeatureCount();

    /**
     * @brief 获取模型版本信息
     * @return 模型版本字符串
     */
    const char* getVersion();

    /**
     * @brief 获取分类标签数量
     * @return 标签数量
     */
    size_t getLabelCount();

    /**
     * @brief 获取指定索引的分类标签
     * @param index 标签索引
     * @return 标签字符串
     */
    const char* getLabel(int index);
};

#endif // MODEL_H